Apache Commons Collections একটি শক্তিশালী লাইব্রেরি যা উন্নত ডেটা স্ট্রাকচার প্রদান করে, এবং এর মধ্যে DualHashBidiMap এবং DualTreeBidiMap দুটি বিশেষ ধরনের BidiMap (Bidirectional Map) ক্লাস। এই দুটি ক্লাস আপনাকে একটি মানচিত্রে কি-to-value এবং value-to-key উভয় দিক থেকে অ্যাক্সেস করতে সক্ষম করে। এরা মূলত two-way mapping প্রদান করে, যেখানে আপনি একটি মান থেকে কী এবং একটি কী থেকে মান খুঁজে পেতে পারেন।
এখানে, আমরা DualHashBidiMap এবং DualTreeBidiMap এর ব্যবহার এবং পার্থক্য নিয়ে আলোচনা করব।
DualHashBidiMap হল একটি BidiMap যা HashMap এর মতো কার্যকরীভাবে কাজ করে এবং কী ও মানের মধ্যে দ্বৈত সংযোগ (bidirectional mapping) তৈরি করে। এটি উভয় দিক থেকে মানের অ্যাক্সেস এবং সঞ্চালন করতে পারে। DualHashBidiMap একটি অর্ডারবিহীন মানচিত্র প্রদান করে, যার মাধ্যমে আপনি কী থেকে মান এবং মান থেকে কী উভয় দিক থেকে অ্যাক্সেস করতে পারবেন।
import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.DualHashBidiMap;
public class DualHashBidiMapExample {
public static void main(String[] args) {
// Create a DualHashBidiMap
BidiMap<String, String> bidiMap = new DualHashBidiMap<>();
// Add key-value pairs
bidiMap.put("A", "Apple");
bidiMap.put("B", "Banana");
// Access value by key
System.out.println("A -> " + bidiMap.get("A")); // Output: Apple
// Access key by value
System.out.println("Apple -> " + bidiMap.getKey("Apple")); // Output: A
}
}
এখানে:
DualTreeBidiMap হল একটি BidiMap যা TreeMap ভিত্তিক এবং এটি কী এবং মান উভয়ের জন্য Sorted Order প্রদান করে। এটি কী ও মানের মধ্যে bidirectional mapping প্রদান করে এবং মানগুলিকে sorted (সাজানো) অবস্থায় রাখে।
import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.DualTreeBidiMap;
public class DualTreeBidiMapExample {
public static void main(String[] args) {
// Create a DualTreeBidiMap
BidiMap<String, String> bidiMap = new DualTreeBidiMap<>();
// Add key-value pairs
bidiMap.put("A", "Apple");
bidiMap.put("B", "Banana");
bidiMap.put("C", "Cherry");
// Access value by key (sorted order)
System.out.println("A -> " + bidiMap.get("A")); // Output: Apple
System.out.println("B -> " + bidiMap.get("B")); // Output: Banana
// Access key by value
System.out.println("Apple -> " + bidiMap.getKey("Apple")); // Output: A
System.out.println("Banana -> " + bidiMap.getKey("Banana")); // Output: B
}
}
এখানে:
পয়েন্ট | DualHashBidiMap | DualTreeBidiMap |
---|---|---|
ভিত্তি | HashMap ভিত্তিক | TreeMap ভিত্তিক |
অর্ডার | অর্ডারবিহীন (unordered) | সাজানো (sorted by key) |
পারফরম্যান্স | দ্রুত অ্যাক্সেস প্রদান করে (এছাড়া অর্ডার থাকে না) | ধীর হতে পারে কারণ এটি কী অনুযায়ী সাজানো থাকে |
উপকারিতা | দ্রুত কীরকম অ্যাক্সেস এবং বড় ডেটা সেটে কার্যকরী | ডেটাকে কী দ্বারা সাজানো (sorted) থাকা প্রয়োজন |
কী-মূল্য সম্পর্ক | উভয় দিকের অ্যাক্সেস (bidirectional) | উভয় দিকের অ্যাক্সেস (bidirectional) |
DualHashBidiMap এবং DualTreeBidiMap উভয়ই BidiMap এর বাস্তবায়ন, তবে তাদের মধ্যে পার্থক্য হলো DualHashBidiMap দ্রুত অ্যাক্সেস এবং অর্ডারবিহীন মানচিত্র সরবরাহ করে, যেখানে DualTreeBidiMap কী এবং মান উভয়কেই সাজানো অবস্থায় (sorted) রাখে। DualHashBidiMap সাধারণত দ্রুততর পারফরম্যান্স প্রদান করে, কিন্তু DualTreeBidiMap সাজানো ডেটা প্রক্রিয়ার জন্য উপযোগী। উভয়ই কী থেকে মান এবং মান থেকে কী এর মধ্যে সম্পর্ক বজায় রাখে এবং ডেটা প্রক্রিয়াতে শক্তিশালী সমাধান প্রদান করে।
common.read_more